package com.itheima.proxy;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

public class proxyDemo {
    public static void main(String[] args) {
        //Car mini = new MiNi();


        //创建动态代理对象
        /*
        * 参数1:和被代理对象相同的类加载器
        * 参数2:被代理对象实现的所有接口的字节码对象数组  接口类型的class数组
        * 参数3:重新制定要增强的方法规则
        * */
        Car newProxy = (Car) Proxy.newProxyInstance(MiNi.class.getClassLoader(), MiNi.class.getInterfaces(), new InvocationHandler() {
            @Override
            public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
                if ("run".equals(method.getName())) {
                    System.out.println("低空飞行启动");
                    return null;
                } else {
                    return null;
                }

            }
        });
        newProxy.run();
        newProxy.stop();


    }


}
